home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / perl5 / Glib / Object.pod < prev    next >
Text File  |  2009-04-29  |  12KB  |  591 lines

  1. =head1 NAME
  2.  
  3. Glib::Object -  Bindings for GObject
  4.  
  5. =cut
  6.  
  7. =for position DESCRIPTION
  8.  
  9. =head1 DESCRIPTION
  10.  
  11. GObject is the base object class provided by the gobject library.  It provides
  12. object properties with a notification system, and emittable signals.
  13.  
  14. Glib::Object is the corresponding Perl object class.  Glib::Objects are
  15. represented by blessed hash references, with a magical connection to the
  16. underlying C object.
  17.  
  18. =cut
  19.  
  20.  
  21.  
  22. =head1 HIERARCHY
  23.  
  24.   Glib::Object
  25.  
  26.  
  27.  
  28. =cut
  29.  
  30. =for object Glib::Object Bindings for GObject
  31. =cut
  32.  
  33.  
  34.  
  35.  
  36. =head1 METHODS
  37.  
  38. =head2 object = $class->B<new> (...)
  39.  
  40. =over
  41.  
  42. =item * ... (list) key/value pairs, property values to set on creation
  43.  
  44. =back
  45.  
  46.  
  47.  
  48.  
  49. Instantiate a Glib::Object of type I<$class>.  Any key/value pairs in
  50. I<...> are used to set properties on the new object; see C<set>.
  51. This is designed to be inherited by Perl-derived subclasses (see
  52. L<Glib::Object::Subclass>), but you can actually use it to create
  53. any GObject-derived type.
  54.  
  55.  
  56. =head2 scalar = Glib::Object-E<gt>B<new_from_pointer> ($pointer, $noinc=FALSE)
  57.  
  58. =over
  59.  
  60. =item * $pointer (unsigned) a C pointer value as an integer.
  61.  
  62. =item * $noinc (boolean) if true, do not increase the GObject's reference count when creating the Perl wrapper.  this typically means that when the Perl wrapper will own the object.  in general you don't want to do that, so the default is false.
  63.  
  64. =back
  65.  
  66.  
  67.  
  68.  
  69. Create a Perl Glib::Object reference for the C object pointed to by I<$pointer>.
  70. You should need this I<very> rarely; it's intended to support foreign objects.
  71.  
  72. NOTE: the cast from arbitrary integer to GObject may result in a core dump without
  73. warning, because the type-checking macro G_OBJECT() attempts to dereference the
  74. pointer to find a GTypeClass structure, and there is no portable way to validate
  75. the pointer.
  76.  
  77.  
  78. =head2 unsigned = $object-E<gt>B<get_data> ($key)
  79.  
  80. =over
  81.  
  82. =item * $key (string) 
  83.  
  84. =back
  85.  
  86.  
  87. Fetch the integer stored under the object data key I<$key>.  These values do not
  88. have types; type conversions must be done manually.  See C<set_data>.
  89.  
  90.  
  91. =head2 $object-E<gt>B<set_data> ($key, $data)
  92.  
  93. =over
  94.  
  95. =item * $key (string) 
  96.  
  97. =item * $data (scalar) 
  98.  
  99. =back
  100.  
  101.  
  102. GObject provides an arbitrary data mechanism that assigns unsigned integers
  103. to key names.  Functionality overlaps with the hash used as the Perl object
  104. instance, so we strongly recommend you use hash keys for your data storage.
  105. The GObject data values cannot store type information, so they are not safe
  106. to use for anything but integer values, and you really should use this method
  107. only if you know what you are doing.
  108.  
  109.  
  110. =head2 pspec = $object_or_class_name->B<find_property> ($name)
  111.  
  112. =over
  113.  
  114. =item * $name (string) 
  115.  
  116. =back
  117.  
  118. Find the definition of object property I<$name> for I<$object_or_class_name>; for
  119. the returned data see L<Glib::Object::list_properties>.
  120.  
  121. =head2 $object-E<gt>B<freeze_notify> 
  122.  
  123.  
  124. Stops emission of "notify" signals on I<$object>. The signals are queued
  125. until C<thaw_notify> is called on I<$object>.
  126.  
  127.  
  128. =head2 $object-E<gt>B<get> (...)
  129.  
  130. =over
  131.  
  132. =item * ... (list) list of property names
  133.  
  134. =back
  135.  
  136.  
  137. Fetch and return the values for the object properties named in I<...>.
  138.  
  139.  
  140. =head2 $object->B<set> (key => $value, ...)
  141.  
  142. =over
  143.  
  144. =item * ... (list) key/value pairs
  145.  
  146. =back
  147.  
  148.  
  149. Set object properties.
  150.  
  151.  
  152. =head2 list = $object_or_class_name->B<list_properties>
  153.  
  154. =over
  155.  
  156. =back
  157.  
  158. List all the object properties for I<$object_or_class_name>; returns them as
  159. a list of hashes, containing these keys:
  160.  
  161. =over
  162.  
  163. =item name
  164.  
  165. The name of the property
  166.  
  167. =item type
  168.  
  169. The type of the property
  170.  
  171. =item owner_type
  172.  
  173. The type that owns the property
  174.  
  175. =item descr
  176.  
  177. The description of the property
  178.  
  179. =item flags
  180.  
  181. The Glib::ParamFlags of the property
  182.  
  183. =back
  184.  
  185.  
  186. =head2 $object-E<gt>B<notify> ($property_name)
  187.  
  188. =over
  189.  
  190. =item * $property_name (string) 
  191.  
  192. =back
  193.  
  194.  
  195. Emits a "notify" signal for the property I<$property> on I<$object>.
  196.  
  197.  
  198. =head2 gpointer = $object-E<gt>B<get_pointer> 
  199.  
  200.  
  201. Complement of C<new_from_pointer>.
  202.  
  203.  
  204. =head2 $object-E<gt>B<get_property> (...)
  205.  
  206. =over
  207.  
  208. =back
  209.  
  210.  
  211. Alias for C<get>.
  212.  
  213.  
  214. =head2 $object->B<set_property> (key => $value, ...)
  215.  
  216. =over
  217.  
  218. =back
  219.  
  220.  
  221. Alias for C<set>.
  222.  
  223.  
  224. =head2 unsigned = $object_or_class_name-E<gt>B<signal_add_emission_hook> ($detailed_signal, $hook_func, $hook_data=undef)
  225.  
  226. =over
  227.  
  228. =item * $detailed_signal (string) of the form "signal-name::detail"
  229.  
  230. =item * $hook_func (subroutine) 
  231.  
  232. =item * $hook_data (scalar) 
  233.  
  234. =back
  235.  
  236. Add an emission hook for a signal.  The hook will be called for any emission
  237. of that signal, independent of the instance.  This is possible only for
  238. signals which don't have the C<G_SIGNAL_NO_HOOKS> flag set.
  239.  
  240. The I<$hook_func> should be reference to a subroutine that looks something
  241. like this:
  242.  
  243.   sub emission_hook {
  244.       my ($invocation_hint, $parameters, $hook_data) = @_;
  245.       # $parameters is a reference to the @_ to be passed to
  246.       # signal handlers, including the instance as $parameters->[0].
  247.       return $stay_connected;  # boolean
  248.   }
  249.  
  250. This function returns an id that can be used with C<remove_emission_hook>.
  251.  
  252. Since 1.100.
  253.  
  254. =head2 list = $instance-E<gt>B<signal_chain_from_overridden> (...)
  255.  
  256. =over
  257.  
  258. =item * ... (list) 
  259.  
  260. =back
  261.  
  262.  
  263. Chain up to an overridden class closure; it is only valid to call this from
  264. a class closure override.
  265.  
  266. Translation: because of various details in how GObjects are implemented,
  267. the way to override a virtual method on a GObject is to provide a new "class
  268. closure", or default handler for a signal.  This happens when a class is
  269. registered with the type system (see Glib::Type::register and
  270. L<Glib::Object::Subclass>).  When called from inside such an override, this
  271. method runs the overridden class closure.  This is equivalent to calling
  272. $self->SUPER::$method (@_) in normal Perl objects.
  273.  
  274.  
  275. =head2 unsigned = $instance-E<gt>B<signal_connect> ($detailed_signal, $callback, $data=undef)
  276.  
  277. =over
  278.  
  279. =item * $detailed_signal (string) 
  280.  
  281. =item * $callback (subroutine) 
  282.  
  283. =item * $data (scalar) arbitrary data to be passed to each invocation of I<callback>
  284.  
  285. =back
  286.  
  287.  
  288.  
  289.  
  290. Register I<callback> to be called on each emission of I<$detailed_signal>.
  291. Returns an identifier that may be used to remove this handler with
  292. C<< $object->signal_handler_disconnect >>.
  293.  
  294.  
  295. =head2 unsigned = $instance-E<gt>B<signal_connect_after> ($detailed_signal, $callback, $data=undef)
  296.  
  297. =over
  298.  
  299. =item * $detailed_signal (string) 
  300.  
  301. =item * $callback (scalar) 
  302.  
  303. =item * $data (scalar) 
  304.  
  305. =back
  306.  
  307.  
  308. Like C<signal_connect>, except that I<$callback> will be run after the default
  309. handler.
  310.  
  311.  
  312. =head2 unsigned = $instance-E<gt>B<signal_connect_swapped> ($detailed_signal, $callback, $data=undef)
  313.  
  314. =over
  315.  
  316. =item * $detailed_signal (string) 
  317.  
  318. =item * $callback (scalar) 
  319.  
  320. =item * $data (scalar) 
  321.  
  322. =back
  323.  
  324.  
  325. Like C<signal_connect>, except that I<$data> and I<$object> will be swapped
  326. on invocation of I<$callback>.
  327.  
  328.  
  329. =head2 retval = $object->B<signal_emit> ($name, ...)
  330.  
  331. =over
  332.  
  333. =item * $name (string) the name of the signal
  334.  
  335. =item * ... (list) any arguments to pass to handlers.
  336.  
  337. =back
  338.  
  339.  
  340.  
  341.  
  342.  
  343. Emit the signal I<name> on I<$object>.  The number and types of additional
  344. arguments in I<...> are determined by the signal; similarly, the presence
  345. and type of return value depends on the signal being emitted.
  346.  
  347.  
  348. =head2 $ihint = $instance->B<signal_get_invocation_hint>
  349.  
  350. Get a reference to a hash describing the innermost signal currently active
  351. on C<$instance>.  Returns undef if no signal emission is active.  This
  352. invocation hint is the same object passed to signal emission hooks, and
  353. contains these keys:
  354.  
  355. =over
  356.  
  357. =item signal_name
  358.  
  359. The name of the signal being emitted.
  360.  
  361. =item detail
  362.  
  363. The detail passed on for this emission.  For example, a C<notify> signal will
  364. have the property name as the detail.
  365.  
  366. =item run_type
  367.  
  368. The current stage of signal emission, one of "run-first", "run-last", or
  369. "run-cleanup".
  370.  
  371. =back
  372.  
  373.  
  374. =head2 $object-E<gt>B<signal_handler_block> ($handler_id)
  375.  
  376. =over
  377.  
  378. =item * $handler_id (unsigned) 
  379.  
  380. =back
  381.  
  382. =head2 $object-E<gt>B<signal_handler_disconnect> ($handler_id)
  383.  
  384. =over
  385.  
  386. =item * $handler_id (unsigned) 
  387.  
  388. =back
  389.  
  390. =head2 boolean = $object-E<gt>B<signal_handler_is_connected> ($handler_id)
  391.  
  392. =over
  393.  
  394. =item * $handler_id (unsigned) 
  395.  
  396. =back
  397.  
  398. =head2 $object-E<gt>B<signal_handler_unblock> ($handler_id)
  399.  
  400. =over
  401.  
  402. =item * $handler_id (unsigned) 
  403.  
  404. =back
  405.  
  406. =head2 integer = $instance-E<gt>B<signal_handlers_block_by_func> ($func, $data=undef)
  407.  
  408. =over
  409.  
  410. =item * $func (subroutine) function to block
  411.  
  412. =item * $data (scalar) data to match, ignored if undef
  413.  
  414. =back
  415.  
  416.  
  417.  
  418. =head2 integer = $instance-E<gt>B<signal_handlers_disconnect_by_func> ($func, $data=undef)
  419.  
  420. =over
  421.  
  422. =item * $func (subroutine) function to block
  423.  
  424. =item * $data (scalar) data to match, ignored if undef
  425.  
  426. =back
  427.  
  428.  
  429.  
  430. =head2 integer = $instance-E<gt>B<signal_handlers_unblock_by_func> ($func, $data=undef)
  431.  
  432. =over
  433.  
  434. =item * $func (subroutine) function to block
  435.  
  436. =item * $data (scalar) data to match, ignored if undef
  437.  
  438. =back
  439.  
  440.  
  441.  
  442. =head2 scalar = $object_or_class_name-E<gt>B<signal_query> ($name)
  443.  
  444. =over
  445.  
  446. =item * $name (string) 
  447.  
  448. =back
  449.  
  450. Look up information about the signal I<$name> on the instance type
  451. I<$object_or_class_name>, which may be either a Glib::Object or a package
  452. name.
  453.  
  454. See also C<Glib::Type::list_signals>, which returns the same kind of
  455. hash refs as this does.
  456.  
  457. Since 1.080.
  458.  
  459. =head2 $object_or_class_name-E<gt>B<signal_remove_emission_hook> ($signal_name, $hook_id)
  460.  
  461. =over
  462.  
  463. =item * $signal_name (string) 
  464.  
  465. =item * $hook_id (unsigned) 
  466.  
  467. =back
  468.  
  469. Remove a hook that was installed by C<add_emission_hook>.
  470.  
  471. Since 1.100.
  472.  
  473. =head2 $instance-E<gt>B<signal_stop_emission_by_name> ($detailed_signal)
  474.  
  475. =over
  476.  
  477. =item * $detailed_signal (string) 
  478.  
  479. =back
  480.  
  481. =head2 $object-E<gt>B<thaw_notify> 
  482.  
  483.  
  484. Reverts the effect of a previous call to C<freeze_notify>. This causes all
  485. queued "notify" signals on I<$object> to be emitted.
  486.  
  487.  
  488. =head2 boolean = Glib::Object-E<gt>B<set_threadsafe> ($threadsafe)
  489.  
  490. =over
  491.  
  492. =item * $threadsafe (boolean) 
  493.  
  494. =back
  495.  
  496. Enables/disables threadsafe gobject tracking. Returns whether or not tracking
  497. will be successful and thus whether using perl ithreads will be possible.
  498.  
  499. =head2 $object-E<gt>B<tie_properties> ($all=FALSE)
  500.  
  501. =over
  502.  
  503. =item * $all (boolean) if FALSE (or omitted) tie only properties for this object's class, if TRUE tie the properties of this and all parent classes.
  504.  
  505. =back
  506.  
  507.  
  508. A special method avaiable to Glib::Object derivatives, it uses perl's tie
  509. facilities to associate hash keys with the properties of the object. For
  510. example:
  511.  
  512.   $button->tie_properties;
  513.   # equivilent to $button->set (label => 'Hello World');
  514.   $button->{label} = 'Hello World';
  515.   print "the label is: ".$button->{label}."\n";
  516.  
  517. Attempts to write to read-only properties will croak, reading a write-only
  518. property will return '[write-only]'.
  519.  
  520. Care must be taken when using tie_properties with objects of types created with
  521. Glib::Object::Subclass as there may be clashes with existing hash keys that
  522. could cause infinite loops. The solution is to use custom property get/set
  523. functions to alter the storage locations of the properties.
  524.  
  525.  
  526.  
  527. =cut
  528.  
  529.  
  530. =head1 SIGNALS
  531.  
  532. =over
  533.  
  534. =item B<notify> (Glib::Object, Glib::ParamSpec)
  535.  
  536. =back
  537.  
  538.  
  539.  
  540. =cut
  541.  
  542.  
  543. =head1 ENUMS AND FLAGS
  544.  
  545. =head2 flags Glib::SignalFlags
  546.  
  547.  
  548.  
  549. =over
  550.  
  551. =item * 'run-first' / 'G_SIGNAL_RUN_FIRST'
  552.  
  553. =item * 'run-last' / 'G_SIGNAL_RUN_LAST'
  554.  
  555. =item * 'run-cleanup' / 'G_SIGNAL_RUN_CLEANUP'
  556.  
  557. =item * 'no-recurse' / 'G_SIGNAL_NO_RECURSE'
  558.  
  559. =item * 'detailed' / 'G_SIGNAL_DETAILED'
  560.  
  561. =item * 'action' / 'G_SIGNAL_ACTION'
  562.  
  563. =item * 'no-hooks' / 'G_SIGNAL_NO_HOOKS'
  564.  
  565. =back
  566.  
  567.  
  568.  
  569.  
  570. =cut
  571.  
  572.  
  573. =head1 SEE ALSO
  574.  
  575. L<Glib>
  576.  
  577.  
  578. =cut
  579.  
  580.  
  581. =head1 COPYRIGHT
  582.  
  583. Copyright (C) 2003-2009 by the gtk2-perl team.
  584.  
  585. This software is licensed under the LGPL.  See L<Glib> for a full notice.
  586.  
  587.  
  588.  
  589. =cut
  590.  
  591.